package org.iteracionIII.presen;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import java.awt.FlowLayout;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.Color;

import javax.swing.JTextPane;

import org.iteracionI.persis.AgenteBD;
import org.iteracionIII.dom.Gestor_Registrar_Prestamo;
import org.iteracionII.presen.JFrameNuevoLibro;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JComboBox;

public class JFrameRegistrarPrestamo extends JFrame {

	private JPanel contentPane;
	private JTextField textFieldUsuario;
	private final JComboBox comboBox = new JComboBox();
    private JTextField textFieldISBN;
	private JTextPane textPane;
	static 	JLabel label2 = new JLabel();
	static  JLabel label3 = new JLabel();
	static 	JButton btnRegistrar = new JButton();
	static  JButton btnLimpiar = new JButton();
	static JLabel label_1 = new JLabel();
	public static String idioma;


	public JFrameRegistrarPrestamo(){
		
		try {
			idioma=ConsultarIdioma();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		idioma(idioma);
		

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 420, 319);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		

		label2.setBounds(21, 11, 69, 16);
		contentPane.add(label2);
                

		label3.setBounds(21, 56, 69, 16);
		contentPane.add(label3);
                
                JLabel label4 = new JLabel("ISBN:");
		label4.setBounds(21, 100, 69, 16);
		contentPane.add(label4);
		
		textFieldUsuario = new JTextField();
		textFieldUsuario.setBounds(87, 11, 134, 28);
		contentPane.add(textFieldUsuario);
		textFieldUsuario.setColumns(10);
                
                textFieldISBN = new JTextField();
		textFieldISBN.setColumns(10);
		textFieldISBN.setBounds(87, 94, 134, 28);
		contentPane.add(textFieldISBN);
		

		btnRegistrar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
                           boolean res=false;
                           String usuario, dias, isbn;
                           usuario = textFieldUsuario.getText();
                           isbn = textFieldISBN.getText();
                           dias = comboBox.getSelectedItem().toString();
                           Gestor_Registrar_Prestamo Prestamo;
                           Prestamo = new Gestor_Registrar_Prestamo();
                           
                           try {
                               res = Prestamo.registrarPrestamo(usuario, dias, isbn);
                           } catch (Exception ex) {
                                Logger.getLogger(JFrameNuevoLibro.class.getName()).log(Level.SEVERE, null, ex);
                           }
                           if (res==true){
                       		if(idioma.equals("English")){
                    			textPane.setText("Registration successful.");
                    		}
                    		else{
                                textPane.setText("Registro realizado correctamente.");
                    		}

                           }
                           else{
                          		if(idioma.equals("English")){
                                    textPane.setText("The book could not book it is not available or does not exist in the database.");
                        		}
                        		else{
                                    textPane.setText("El libro no se ha podido reservar, no se encuentra disponible o no existe en la BD.");
                        		}

                           }
			}
		});
		btnRegistrar.setBounds(277, 30, 117, 29);
		contentPane.add(btnRegistrar);
		

                
                btnLimpiar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
                            
                            textPane.setText(null);
                            textFieldUsuario.setText(null);
                            textFieldISBN.setText(null);
			}
		});
                
                btnLimpiar.setBounds(277, 94, 117, 29);
		contentPane.add(btnLimpiar);
                

		label_1.setForeground(Color.BLUE);
		label_1.setBounds(6, 210, 61, 16);
		contentPane.add(label_1);
		
		textPane = new JTextPane();
		textPane.setToolTipText("Panel para mostrar el restultado de la comprobaci\u00F3n de login o las excepciones lanzadas");
		textPane.setEditable(false);
		textPane.setBounds(6, 230, 407, 102);
		contentPane.add(textPane);
		
		comboBox.setBounds(87, 54, 88, 20);
		contentPane.add(comboBox);
		comboBox.addItem("1");
		comboBox.addItem("7");
		comboBox.addItem("15");
		comboBox.addItem("30");

	}
    public void idioma(String idioma){
    	if(idioma.equals("Español")){
    		setEspañol();
    	}
    	if(idioma.equals("English")){
    		setEnglish();
    	}
    }
    
    public void setEspañol(){
		setTitle("Registrar un prestamo");
		label2.setText("Cliente");
		label3.setText("Días: ");
		btnRegistrar.setText("Registrar");
		btnLimpiar.setText("Limpiar");
		label_1.setText("Estado");


    }
    public void setEnglish(){
        setTitle("Register a loan");
		label2.setText("Client");
		label3.setText("Days: ");
		btnRegistrar.setText("Record");
		btnLimpiar.setText("Clear");
		label_1.setText("State");


    }
	public String ConsultarIdioma() throws Exception{
		String idioma = null;
		
        Vector<Object> aux = null;
        String tipo="";
        String SQL_Consulta = "SELECT * FROM Idioma;";
		AgenteBD agen = AgenteBD.getAgente();
		Vector<Object> res = agen.selectIdioma(SQL_Consulta);
		if (res.size() == 1){
			aux = (Vector<Object>) res.elementAt(0);
			tipo = aux.elementAt(0).toString(); 
		}
		
		idioma=tipo;
		return idioma;
	}
}
